System and method for visual exploration of search results in two-mode networks

ABSTRACT

A method of visualizing search results is provided. The method includes receiving a content feature, detecting, within a network, a subnetwork pattern representing a relationship satisfying a condition and associated with an entity of a first or a second type, the entity being associated with the content feature, and generating a visualization based on the detected subnetwork pattern. The visualization includes a first region representative of the first type of entity, a second region representative of the second type of entity, and a linking region connecting the first region to the second region and providing information about the represented relationship.

BACKGROUND Field

The present disclosure relates to data visualization systems, and more specifically, to systems and methods of data visualization systems to analyze networks.

Related Art

In many fields, a network may be used as abstract representations of entities (nodes) and relationships (links between nodes). Although many networks may be defined as one-mode or single-mode (e.g., containing one type of entity such as user, author, location, document, etc.), two-mode networks (also known as bipartite graphs) may exist in many real-world applications (e.g., networks of employees and teams in a company, networks of authors and documents in a text corpus, networks of customers and purchases of an online commerce platform). In such related art two-mode networks, links may exist only between different types of nodes, which may be weighted or unweighted. For example, in a related art employee-team network, links may represent memberships of an employee to a team, but there are no direct links between any two different employees or two different teams.

In the related art, analysis of two-mode networks may provide valuable insights to the systems they represent, but is usually more complex than analysis of one-mode networks. In the related art, subnetwork patterns (e.g., a group of nodes and links that present a specific structure or meet a specific condition) may be detected to understand the network properties at both local and global levels. Subnetwork patterns are discussed in greater detail below.

Related art computational methods have been developed to discover patterns in two-mode networks (e.g., biclustering). Although these related art methods may provide some basic insights to the network structures, as the size of networks grows large, the analysis becomes more complicated. For example, many patterns may have overlapping nodes that indicate key players in the network, which may be difficult to spot without an effective representation of the results. Further, related art pattern finding algorithms may have deficiencies requiring manual inspection. For example, using related art algorithms may not detect high-level patterns indicated by multiple nodes being shared by several patterns that may be revealed when the multiple nodes are viewed together.

However, related art visualization systems are designed for exploring general networks that are usually one-mode. Related art visualization techniques designed for single mode networks may not allow easy identification of subnetwork patterns. Further, some related art visualization techniques that may illustrate subnetwork patterns (such as biclustering) are not as scalable, and are not general enough to accommodate weighted two-mode networks. Although several could be extended to display two-mode networks, they are not adequate for subnetwork pattern analysis tasks. This invention tackles the specific problem of studying patterns in two-mode networks based on interactive visualization techniques. Many related art visualization systems only offer a data overview, missing more effective visualization of all patterns.

SUMMARY OF THE DISCLOSURE

Aspects of the present disclosure may include a method of visualizing search results is provided. The method includes receiving a content feature, detecting, within a network, a subnetwork pattern representing a relationship satisfying a condition and associated with an entity of a first or a second type, the entity being associated with the content feature, and generating a visualization based on the detected subnetwork pattern. The visualization includes a first region representative of the first type of entity, a second region representative of the second type of entity, and a linking region connecting the first region to the second region and providing information about the represented relationship.

Additional aspects of the present disclosure may include a non-transitory computer readable medium having stored therein a program for making a computer execute a method of visualizing search results. The method includes receiving a content feature, detecting, within a network, a subnetwork pattern representing a relationship satisfying a condition and associated with an entity of a first or a second type, the entity being associated with the content feature, and generating a visualization based on the detected subnetwork pattern. The visualization includes a first region representative of the first type of entity, a second region representative of the second type of entity, and a linking region connecting the first region to the second region and providing information about the represented relationship.

Aspects of the present disclosure may also include a computer apparatus configured to visualize search results. The computer apparatus may include a memory storing relationship data comprising a plurality of relationships, each relationship being associated with an entity selected from a plurality of entities of the first type and an entity selected from a plurality of entities of the second type, a processor, and a display device configured to display a generated visualization. The processor may execute a process including receiving a content feature, detecting a plurality of subnetwork patterns, each of the plurality of subnetwork patterns representing a relationship satisfying a condition and associated with either the entity selected from the plurality of entities of the first type or the entity selected from the plurality of entities of the second type, which is associated with the received content feature, and generating the visualization based on the detected subnetwork pattern. The generated visualization may include a first region representative of the first type of entity, a second region representative of the second type of entity, and a linking region connecting the first region to the second region and providing information about the represented relationship. The visualization may also include a plurality of rows, each row associated with one of the plurality of detected subnetwork patterns satisfying the condition.

Additional aspects of the present disclosure may also include a computer apparatus configured to visualize search results. The computer apparatus may include means for storing relationship data comprising a plurality of relationships, each relationship being associated with an entity selected from a plurality of entities of the first type and an entity selected from a plurality of entities of the second type, means for receiving a content feature, means for detecting a plurality of subnetwork patterns, each of the plurality of subnetwork patterns representing a relationship satisfying a condition and associated with either the entity selected from the plurality of entities of the first type or the entity selected from the plurality of entities of the second type, which is associated with the received content feature, means for generating a visualization based on the detected subnetwork pattern, and means for displaying the generated visualization. The generated visualization may include a first region representative of the first type of entity, a second region representative of the second type of entity, and a linking region connecting the first region to the second region and providing information about the represented relationship. The visualization may also include a plurality of rows, each row associated with one of the plurality of detected subnetwork patterns satisfying the condition.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example two-mode network.

FIG. 2 illustrates a flowchart of a visualization process according to an example implementation of the present application.

FIG. 3 illustrates a user interface (UI) usable as a visualization in accordance with example implementations of the present application.

FIG. 4 illustrates an enlarged portion of the UI of FIG. 3.

FIG. 5 illustrates a general construction of a node icon usable in example implementations of the present application.

FIG. 6 illustrates an enlarged view of another portion of the UI of FIG. 3.

FIG. 7 illustrates the UI 300 of FIG. 3 reorganized based on user selection.

FIG. 8 illustrates a flowchart for a process of interacting and updating a UI in accordance with example implementations of the present application.

FIG. 9 illustrates a flowchart of a search result visualization process according to an example implementation of the present application.

FIG. 10 illustrates a UI usable as a visualization in accordance with another example implementation of the present application.

FIG. 11 illustrates a UI usable as a visualization in accordance with another example implementation of the present application.

FIGS. 12A and 12B illustrates example implementations of a UI usable as a visualization in accordance with another example implementation of the present application.

FIG. 13 illustrates an example computing environment with an example computer device suitable for use in some example implementations of the present application.

DETAILED DESCRIPTION

The following detailed description provides further details of the figures and example implementations of the present application. Reference numerals and descriptions of redundant elements between figures are omitted for clarity. Terms used throughout the description are provided as examples and are not intended to be limiting. For example, the use of the term “automatic” may involve fully automatic or semi-automatic implementations involving user or operator control over certain aspects of the implementation, depending on the desired implementation of one of ordinary skill in the art practicing implementations of the present application.

A two-mode network is a special kind of network which consists of two types of entities (nodes) and relations (links) between different types of entities. Two-mode networks may summarize the association between one entity and another, and they exist in many application scenarios, for example, connections between employees and teams in an organization. Specific subnetwork patterns may be of interest by analysts. One type of subnetwork pattern may be a clique.

A clique is a maximal, complete subgraph in a two-mode network. Complete means that every node of one type has connections to all the nodes of another type in this subgraph; and maximal means that adding extra nodes and links to this subgraph breaks the maximal definition.

FIG. 1 illustrates an example two-mode network 100 formed by a first type of entities 105 (A-F) and a second type of entities 110 (1-6). In FIG. 1, subnetwork pattern 115 formed of first type entities 105 (A, B) and second type entities 110 (1, 2) illustrates a clique because it is both complete and maximal. Subnetwork pattern 115 is complete because all of the first type of entities 105 (A, B) are connected to all of the second type entities 110 (1, 2). Subnetwork pattern 115 is maximal because no other first type entities 105 (C-F) within the network 100 is connected to all of the second type entities 110 (1, 2) of the subnetwork pattern 115, and no other second type entities 110 (3-6) within the network 100 is connected to all of the first type entities 110 (A, B) of the subnetwork pattern 115.

In FIG. 1, subnetwork pattern 120 formed of first type entities 105 (B, E) and second type entities 110 (4, 5) also illustrates a clique because it is also both complete and maximal. Subnetwork pattern 120 is complete because all of the first type of entities 105 (B, E) are connected to all of the second type entities 110 (4, 5). Subnetwork pattern 120 is maximal because no other first type entities 105 (A, C, D, F) within the network 100 is connected to all of the second type entities 110 (4, 5) of the subnetwork pattern 120, and no other second type entities 110 (1-3, 6) within the network 100 is connected to all of the first type entities 110 (B, E) of the subnetwork pattern 120.

Cliques, such as those illustrated in FIG. 1, may have real semantic meanings in different applications, which might be important in social network analysis. For example, a clique in an employee-team network may indicate all teams have certain employees in common, which may have implications for resource allocation; similarly, in an author-publication network, a clique may represent these authors are all on a certain group of publications, indicating a close collaboration.

Example implementation may identify subnetwork patterns from a two-mode network and visualizes the results, allowing for interactive exploration of patterns in data. These example implementations may enable users to discover complex relationships among all the detected patterns in a network, such as node overlaps, and may also allow examination of meta-data information associated with nodes and links in these patterns. Example implementations may also include a visualization system that may emphasize the two different types of nodes within a two-mode network by separating the two different types.

FIG. 2 illustrates a flowchart of a visualization process 200 according to an example implementation of the present application. The illustrated process 200 may be performed by a processor (such as processors 1310) of a device or apparatus (such as computing device 1305 of FIG. 13) to provide subnetwork pattern detection and visualization. As illustrated in process 200, relationship information is extracted from a plurality of data entities at 205. The data entities may be of two or more different types. The different types of data entities are not particularly limited and may include user entity, creator or author entity, reader entity, content item or document entity, purchase entity, communication entity or any other entity that might be apparent to a person of ordinary skill in the art. The entities may be received or selected from a database. The type of database is not particularly limited and may include any type of data records including email data, travel data, phone call data, instant message data, event data, content data, purchase data or any other type of data that might be apparent to a person of ordinary skill in the art.

The relationship information between the entities may be extracted by extracting content features from each of the plurality of entities. The extraction of the content features is not particularly limited and may include applying object recognition techniques (e.g., object recognition, facial recognition, character recognition, etc.) to images or videos associated with the content item to identify the visual content. Additionally, audio recognition techniques (e.g., audio event detection, audio characteristic classification, speech recognition, etc.) may be used to detect the audio content associated with the content item. Additionally, subject matter recognition algorithms may be used to detect subjects or topics of textual content of the content item. The extracted content features may also include other types of features about the content item such as location of capture or authorship (e.g., Global Positioning System (GPS) data, etc.) or any other content features that might be apparent to a person of ordinary skill in the art.

The relationships data may be extracted from the entities by matching content features associated with entities of one type with corresponding content features of entities of another, different type. For example, if content features associated with a content item or document entities indicates authorship by a certain person or persons, and content features associated with a creator or author entities indicates identity information by the same person or persons, a relationship may be stored in the relationship data. Other examples of relationships between entities of different types may be apparent to a person of ordinary skill in the art, including user entity-communication entity, user entity-purchase entity, reader entity-communication entity, reader entity-content or document entity, etc.

Once relationship data is extracted from the plurality of entities, a two-mode network may be constructed at 210 by connecting entities of one type to entities of a second type. In some example implementations, entities of one type (e.g., a first type) may only be connected directly with entities of the second, different type and not to other entities of the first type. Similarly, entities of the second type may only be connected directly with entities of the first type and not to other entities of the second type.

In some example implementations, relationships between individual entities of one type may be connected to individual entities of the second type based on predefined data associated with each entity. For example, a creator or author entity relationship with a created content or document entity. In other example implementations, multiple entities of one type may be joined together to form the relationship. For example, posts in a chat application within a certain time frame may be grouped as a conversation and users who published posts within the conversation may be connected to the entire conversation.

After constructing a two-mode network, which may represent a real-world system, subnetwork patterns can be detected using a variety of techniques at 215. For example, brute force methods can be used to find subnetwork patterns such as cliques or faster (e.g., linear) approaches such as biclustering. Example implementations are not limited to any particular subnetwork pattern finding process and may use any technique to identify subnetwork patterns of interest that might be apparent to a person of ordinary skill in the art.

After the subnetwork patterns are identified, a visualization may be generated at 220. The generated visualization may be displayed on a computing device or apparatus such as a personal computer, a server, a mainframe, or any other computing device that might be apparent to a person of ordinary skill in the art. Example implementations of the visualization are discussed in greater detail below with respect to FIGS. 3-7, and 10-12. In some example implementations, the process 200 may end once the visualization is generated.

In other example implementations, a determination whether interaction instructions have been received from a user may optionally be made at 225. The user instructions may be received from a user input device such as a keyboard, pointing device (e.g., a mouse, trackball, touchpad), interactive display (e.g., a touch screen display), or any other user input device that might be apparent to a person of ordinary skill in the art. In some example implementations, the user instructions may be received through a user interface (UI), such as a toolbar or other control elements, integrated into the visualization generated at 220. In other example implementations, the user instructions may be received through a separate UI independent of the visualization generated at 220.

If user interaction instructions are received (YES at 225), the visualization may optionally be regenerated based on the received interaction instructions at 230. Regeneration of the visualization may include reordering portions of the visualization, repositioning portions of the visualization, removing portions from the visualization, adding portions to the visualization, or any other changes to the visualization that might be apparent to a person of ordinary skill in the art. Example implementations of a process of regenerating the visualization are discussed in greater detail below with respect to FIGS. 2, 8, and 9.

Conversely, if no user interactions are received (NO at 225), the process 200 may end.

FIG. 3 illustrates a user interface (UI) 300 usable as a visualization in accordance with example implementations of the present application. The UI 300 may be produced using the process 200 discussed above and may be displayed on a computing device or apparatus such as a personal computer, a server, a mainframe, or any other computing device that might be apparent to a person of ordinary skill in the art. The UI 300 may represent a visualization of a network connecting users of a communications system (e.g., an instant messaging platform, emailing platform, electronic posting board, a short message service (SMS) platform or other communication platform) and communications or posts within the communication system. Other types of visualizations are discussed in greater detail below with respect to FIGS. 10-12.

In some example implementations, the UI 300 may include four parts. For reference purposes, each of the four parts has been highlighted with a broken line box in FIG. 3. As illustrated, the UI 300 may include a main view 305, which may be used to show the results of subnetwork pattern detection (215 of process 200 of FIG. 2). The UI 300 may also include an information panel 310 for displaying content features associated with entities displayed in the main view 305 (e.g., the information panel 310 may illustrate meta-data associated with entities). Further, the UI 300 may include an overview region 315 for showing the topology of an entire network and a toolbar 320 that may be used for manipulating the UI 300 (e.g., sending interaction instructions that may be received at 225 of process 200 of FIG. 2).

The main view 305 may include a plurality of rows 325, each row 325 representing one of the detected subnetwork patterns. For ease of illustration only two rows 325 have been labeled in FIG. 3. However, each of the rows illustrated in the main view 305 of the UI 300 of FIG. 3 may be representative of one of the detected subnetwork patterns even if a reference numeral is not provided. Within each row 325 of the main view 305, three regions 330, 335,340 may be provided. The left region 330 may be associated with a first type of entity represented by node icons 380. The right region 335 may be associated with a second type of entity represented by node icons 385. Depending on the type of entity represented by each node icon 380, 385, the node icon 380, 385 may be shown as an image, or a text summary. For example, a message or communication analysis implementation is illustrated in FIG. 3. As illustrated, entities of the first type in the left region 330 are users and node icons 380 are rendered as images of their profiles. Further, the entities of the second type in the right region 335 are conversations (e.g., collections of communications responsive to each other) in which the users have participated and node icons 385 may be are rendered with the key terms of the contents of the underlying conversations. The node icons 380, 385 are discussed in greater detail below with respect to general node icon 500 of FIG. 5.

The left region 330 is connected to right region 335 by a central or linking region 340, which may provide information about the subnetwork pattern associated with each row 325. For example a number of entities of the first type in the right region 335 and a number of entities of the second type in left region 385 may be displayed in the linking region 340. Additionally, in some implementations more entities of the first type 380 or the second type 385 may be associated with a subnetwork pattern than can be displayed in the left and right regions 330, 335 of a row 325. In such implementations, the linking region 340 may provide controls to scroll or toggle the left and right regions 330, 335 of the row 325 to display additional entities of the first type 380 or the second type 385. The display of each row is discussed in greater detail below with respect to FIG. 4, which illustrates an enlarged view of region IV of FIG. 3.

Additionally, in FIG. 3 the information panel 310 includes content information region 345 providing information about the content associated with subnetwork patterns associated with the rows 325 illustrated in the main view 305. The information panel 310 may be related to a selected entity (e.g., the second type of entity associated with node icon 385 a). The content information region 345 may be illustrated by a cluster of words representative of content detected as being associated with the conversation associated with node icon 385 a (e.g., an entity of the second type). In some implementations, the size of the words in the content information region 345 may be representative of the frequency of occurrence of the content within the conversations (e.g., the entity of the second type).

The information panel 310 may also include a sample display section 350 that displays communications associated with the selected conversation associated with node icon 385 a (e.g., an entity of the second type). As illustrated, the selected conversation associated with node icon 385 a (e.g., an entity of the second type) may include five messages between three users.

Further, in FIG. 3 the overview region 315 provides global node map 390 illustrating the topology of an entire network. In some example implementations, the global node map 390 may allow navigation of the entire network. For example, the global node map 390 may be manipulated (e.g., rotated, resized, or moved) and the manipulation of the global node map 390 may cause changes in the main view 305. For example, rotating the global node map 390 may change the relationships shown in the main view 305 or may change the number of rows shown. Other manipulations may be apparent to a person of ordinary skill in the art.

The main view 305 of the UI 300 may also provide some basic interactivities for exploring the data using the information panel 310 and the overview region 315. For example, hovering over a link or an entity 380, 385 in the main view 305 may reveal corresponding meta-data in the information panel 310, as well as nodes and links in the overview region 315. For example, as illustrated, the conversation (entity 385 a) is hovered over and the information panel 310 shows tag clouds of the conversation key terms in the content information region 345 and the raw conversations in the sample display section 350.

The UI 300 may also enable a range of other interactions through the toolbar 320, for example, filtering the patterns based on size, filtering nodes (based on selection) and links (based on weight), and grouping and reordering patterns.

The toolbar 320 may provide several interface controls for a user to perform data detected subnetwork patterns represented by the rows 325 in the main view 305. For example, numeric fields 355 may be used to specify a minimum number of entities of the first and second type for the detected subnetwork patterns (e.g., at least 3 entities of the first type and at least 3 entities of the second type). Further, a text window 360 may be used to specify keywords or terms to be used to filter entities or relationships to be analyzed for subnetwork pattern detection and display in the main view 305. For example, a user may enter keywords of interests and the keywords of interest may be used to identify conversations or users for display in the main view 305.

Control bar 365 may be used to specify minimum probabilities of association between the keywords and the detected entities to be used in the subnetwork pattern detection. For example, only conversations including communications with topical probabilities above a threshold set by the control bar 365 may be displayed. Control bar 370 may be used to specify a minimum grouping parameter to be used to generate the main view 305 and control features 375 may be used to specify how the subnetwork patterns associated with the rows 325 of the main view 305 should be displayed. For example, the rows 325 may be order based on a weighted average of content or topical probabilities or any other parameter that might be apparent to a person of ordinary skill in the art. Based on user interaction with the toolbar 320, the UI 300 may be updated or modified using a process such as process 800 illustrated in FIG. 9.

FIG. 4 illustrates an enlarged portion IV of the main view 305 of the UI 300 of FIG. 3. As illustrated, a row 325 of the main view 305 of the UI 300 illustrated in FIG. 3 above has been enlarged to illustrate features thereof. The row 325 may be representative of a subnetwork pattern detected in a network of connected entities. For example, in FIGS. 3 and 4, a message or communication analysis implementation is illustrated. The row 325 illustrated in FIG. 4 may be representative of the other rows 325 illustrated in the main view 305 of the UI 300 of FIG. 3 and other rows 325 illustrated in FIG. 3 may have similar features, even if not specifically identified in FIG. 3.

As discussed above, the row 325 includes a plurality of node icons 380, 385 and the row 325 may be divided into three regions 330, 335, 340 (highlighted with broken line boxes in FIG. 4). The left region 330 may be associated with a first type of entity represented by node icons 380. In the example implementation of FIGS. 3 and 4, the entities of the first type in the left region 330 may be users of a message or communication system and node icons 380 may include rendered images 420 from the user's profiles (e.g., a user avatar or profile image). Additionally, the right region 335 may be associated with a second type of entity represented by node icons 385. In the example implementation of FIGS. 3 and 4, the entities of the second type in the right region 335 may be conversations (e.g., collections of communications responsive to each other) in which the users (entities of the first type) have participated. The node icons 385 associated with the entities of the second type may be rendered with a listing 425 of the key terms extracted from the contents of the underlying conversations. Additional features of example implementations of the node icons 380, 385 are discussed in greater detail below with respect to FIG. 5.

As illustrated, the left region 330 of the row 325 may be connected to right region 335 by the central or linking region 340. The central or linking region 340 may provide information about the subnetwork pattern associated with each row 325. For example, a subnetwork pattern size indicator 405 may be provided to identify size of the subnetwork pattern identified. The subnetwork pattern size indicator 405 (highlighted with a broken oval) may indicate the number of entities of the first type in the right region 335 and a number of entities of the second type in left region 335. In the example implementation illustrated in FIG. 4, the subnetwork pattern size indicator 405 value of “3×4” may indicate that subnetwork pattern associated with the illustrated row 325 includes 3 entities of the first type in the left region 330 and 4 entities of the second type in the right region 335.

Additionally, in some implementations more entities of the first type 380 or the second type 385 may be associated with a subnetwork pattern than can be displayed in the left and right regions 330, 335 of the row 325. In such implementations, the linking region 340 may provide user interface (UI) controls 410, 415 (highlighted with broken ovals) associated with the left region 330 and right regions 335 respectively. Each UI control 410, 415 may allow scrolling or toggling of the left and right regions 330, 335 respectively, to display additional entities of the first type 380 or the second type 385 that cannot be displayed. Each UI control 410, 415 may also have page indicators 430, 435. The page indicator 430 may indicate the current page of entities 380 being displayed in the left region 330. Additionally, in some example implementations, the page indicator 430 may also indicate the total number of pages of entities 380 available. In the example implementation illustrated in FIG. 4, the page indicator 430 value of “1/1” may indicate that currently page number “1” of a total of one available page is displayed in the left region 330.

Similarly, the page indicator 435 may indicate the current page of entities 385 being displayed in the right region 335. Additionally, in some example implementations, the page indicator 435 may also indicate the total number of pages of entities 385 available. In the example implementation illustrated in FIG. 4, the page indicator 435 value of “1/1” may indicate that currently page number “1” of a total of one available page is displayed in the right region 335.

FIG. 5 illustrates a general construction of a node icon 500 usable in example implementations of the present application. In some example implementations, the illustrated node icon 500 may be used as a node icon 380, 385 in a main view 305 of the UI 300 to represent entities of first or second types in a network of entities. The node icon 500 includes a main area 505 that may include information descriptive or indicative of the entity with which the node icon 500 is associated. For example, as discussed above, the node icon 380 may include rendered images 420 (in FIG. 4) from the user's profiles (e.g., a user avatar or profile image). The rendered images 420 may be displayed in the main area 505. As another example described above, the node icon 385 may include a listing 425 (in FIG. 4) of the key terms extracted from the contents of the underlying conversations. Again, the listing 425 of key terms may be displayed in the main area 505. Other information that might be descriptive or indicative of the entity with which the node icon 500 is associated may be displayed in the main area 505 may be apparent to persons of ordinary skill in the art.

The node icon 500 may include a horizontal bar 510 that indicates the numbers of subnetwork patterns the entity associated with the node icon is a part of across all subnetwork patterns identified. Thus, the longer the horizontal bar 510 is, the more patterns the entity associated with the node icon belong. In some example implementations, the horizontal bar 510 might help an analyst identify key entities in the network as they appear in many different patterns.

The node icon 500 may also include a region 515 having one or more vertically arranged horizontal lines 517 a-517 g. Each of the horizontal lines 517 a-517 g may be representative of links (e.g., relationships) connecting the entity associated with the node icon 500 to other entities in the network. In some example implementations, the links (e.g., relationships) may have weights or weighting factors, which may correspond to the vertical (e.g., y-position) of the horizontal lines 517 a-517 g. In some example implementations, this configuration may allow an analyst to be able to see the distribution of link (e.g., relationship) weights associated with each entity.

Additionally, as discussed below with respect to FIG. 7, an example implementation of the UI 300 may allow an analyst to select or “pin” an entity to form a separate column. In such implementations, the node icon 500 may also include a second horizontal bar 520, representing the proportion of patterns to which the entity associated with the node icon belongs, among all the “selected” patterns (e.g., patterns containing the “pinned” entity). The length of the second horizontal bar 520 may indicate how many selected patterns contain a specific entity associated with the node icon 500. In some example implementations, this configuration may help an analyst identify a next most relevant entity with respect to the pinned entities.

In some example implementations, “pinning” or selecting an entity may also cause subnetwork patterns not associated (e.g., negatively associated) with the entity to be repositioned or highlighted. For example, selection of an entity 385 may cause rows 325 not containing the entity to be moved or highlighted to allow pinning to be used to exclude, rather than include entities. Other aspects of “pinning” operations using example implementations of the UI 300 are discussed in greater detail below with respect to FIG. 7.

FIG. 6 illustrates an enlarged view of the overview region 315 of the UI 300 of FIG. 3. As illustrated, the overview region 315 provides a global node map 390. The global node map is formed by a plurality of nodes 605 of a first type (represented with black dots), a plurality of nodes 610 of a second type (represented by white dots), and links 615 connecting the nodes 605 of the first type to the nodes 610 of the second type. Each of the nodes 605 of the first type may correspond to an entity of the first type represented by node icons 380 in FIGS. 3 and 4 above. Further, each of the nodes 610 of the second type may correspond to an entity of the second type represented by node icons 385 in FIGS. 3 and 4 above. Additionally, each of the links 615 may represent a relationship between the entities of the first type and the entities of the second type.

In FIG. 6, some of nodes 605 of the first type (e.g., black dots) have been labeled. However, the unlabeled nodes (e.g., black dots) may be substantially similar to the labeled nodes 605 and may have the same features thereof. Additionally, some of nodes 610 of the first type (e.g., white dots) have been labeled. However, the unlabeled nodes (e.g., white dots) may be substantially similar to the labeled nodes 610 and may have the same features thereof. Further, though only some of the links 615 may be labeled in FIG. 6, unlabeled links may be substantially similar to, and may have the same features of, labeled links 615.

By manipulating the nodes 605, 610 and the links 615 of the global node map 390, the main view 305 of FIG. 3 may be changed. For example, by selecting one of nodes 605 a, the subnetwork pattern 620 including that node 605 a may be highlighted or displayed. Other manipulations and effects may be apparent to a person of ordinary skill in the art.

FIG. 7 illustrates the main view 305 of the UI 300 of FIG. 3 reorganized based on user selection of an entity. The UI 300 may be produced using the process 200 discussed above and may be displayed on a computing device or apparatus such as a personal computer, a server, a mainframe, or any other computing device that might be apparent to a person of ordinary skill in the art. The UI 300 may represent a visualization of a network connecting users of a communications system (e.g., an instant messaging platform, emailing platform, electronic posting board, a short message service (SMS) platform or other communication platform) and communications or posts within the communication system. Other types of visualizations are discussed in greater detail below with respect to FIGS. 10-12.

Again, the main view 305 may include a plurality of rows 325, each row 325 representing one of the detected subnetwork patterns. For ease of illustration only two rows 325 have been labeled in FIG. 7. However, each of the rows illustrated in the main view 305 of the UI 300 of FIG. 7 may be representative of one of the detected subnetwork patterns even if a reference numeral is not provided. Within each row 325 of the main view 305, three regions 330, 335, 340 may be provided. The left region 330 may be associated with the first type of entity represented by node icons 380. The right region 335 may be associated with a second type of entity represented by node icons 385.

In FIG. 7, a message or communication analysis implementation is illustrated. As illustrated, entities of the first type in the left region 330 are users and the entities of the second type in the right region 335 are conversations (e.g., collections of communications responsive to each other) in which the users have participated.

Based on user input, one of entities of the first type (380 a, “JENN”) has been selected or “pinned” for deeper exploration. After the entity 380 a has been pinned, the main view has been rearranged to form a separate column for entity 380 a. This may allow clearer visualization to see which subnetwork patterns this entity 380 a belongs to. When the entity 380 a is pinned, the other unpinned entities 380 may be are reordered based on their relevancy to the pinned entity 380 a in each row. This may bring more relevant entities to the center (represented by broken rectangle 710) region so that an analyst can more easily access them. After pinning entity 380 a, the second horizontal bar 520 of the entities 380, 380 a may be dynamically shown under each node icon, representing the proportion of patterns to which that entity 380, 380 a belongs, among all the “selected” patterns. Again, selected patterns mean the patterns containing the pinned entity 380 a. So the length of the second horizontal bar 520 indicates how many selected patterns contain a specific entity 380. This may help an analyst to identify a next most relevant entity 380 with respect to the pinned entity 380 a. For example, in FIG. 7, pinning in the UI 300 may allow recognition that the user who chats most frequently with the pinned entity 380 a (appearing in the same patterns) is the entity 380 with the profile image of trees (highlighted with broken circles 715) as it has the longest second horizontal bars 520 among the unpinned entities 380.

In some example implementations, “pinning” or selecting an entity may also cause subnetwork patterns not associated (e.g., negatively associated) with the entity to be repositioned or highlighted. For example, selection of an entity 385 may cause rows 325 not containing the entity to be moved or highlighted to allow pinning to be used to exclude, rather than include entities.

FIG. 8 illustrates a flowchart 800 for a process of interacting and updating the UI 300 in accordance with example implementation of the present application. The illustrated process 800 may be performed by a processor (such as processors 1310) of a device or apparatus (such as computing device 1305 of FIG. 13) to provide subnetwork pattern detection and visualization. In the process 800, a user first defines the scope of the exploration by selecting a range of data at 805. In some example implementations, the range of data for analysis may be selected using a User Interface or uploading a collection of data to a system. For example, the overview region 315 may be used to define data for analysis. Other UI or other data manipulation mechanism may be used as may be apparent to a person of ordinary skill in the art. Alternatively, as discussed in greater detail below, the data selected for analysis may be search results received from a search engine.

After the range of data for analysis has been defined, subnetwork pattern finding parameters (such as minimum pattern size, probability threshold values, etc.) are configured based on the data selected and, optionally, default visualization parameters to generate a visualization at 810. In some example implementations, the subnetwork finding parameters may be user defined using a UI, such as the toolbar 320 of UI 300, by setting the size (using numeric fields 355) and link weight threshold (using control bar 365), which governs the pattern finding algorithm and what kind of patterns should be presented. In other example implementations, the initial subnetwork finding parameters may be administrator defined, or may be automatically generated using machine learning, or other automated process.

Once the initial subnetwork pattern finding parameters are configured, a user can refine visualization parameters at 815 using the grouping, sorting, and filtering functions. Based on user input at 815, the subnetwork finding parameters may be reconfigured and an updated visualization may be generated at 810. In some example implementations, the refining of the visualization parameters at 815 may also trigger selection of more, less, or different data for analysis at 805.

In addition to refining the visualization parameters, a user may also perform dynamic exploration of the results at 820 using “pinning”, hovering or other data exploration functions. Based on user input at 820, the subnetwork finding parameters may be reconfigured and an updated visualization may be generated at 810. In some example implementations, the refining of the dynamic exploration of the results at 820 may also trigger selection of more, less, or different data for analysis at 805.

The refining of the visualization parameters at 815 and the dynamic exploration at 820 may be performed sequentially, or simultaneously. The difference between these two steps is that dynamic exploration at 820 does not trigger rearrangement of patterns (e.g., repositioning of repositioning of rows 325 in the UI 300), whereas visualization refinement at 815 may trigger rearrangement of patterns. In other words, dynamic exploration at 820 may be an operation on the entity and relationship level versus refinement of the visualization parameters at 815 may be an operation at the pattern level.

If no user input is received at either 815 or 820, the process 800 may end.

FIG. 9 illustrates a flowchart of a search result visualization process 900 according to an example implementation of the present application. The illustrated process 900 may be performed by a processor (such as processors 1310) of a device or apparatus (such as computing device 1305 of FIG. 13) to provide search result detection and visualization. Some aspects of the process 900 may be similar to aspects of the process 200 discussed above. Thus, similar description may be provided. As illustrated, in process 900 relationship information is extracted from a plurality of data entities at 905. The data entities may be of two or more different types. The different types of data entities are not particularly limited and may include user entity, creator or author entity, reader entity, content item or document entity, purchase entity, communication entity or any other entity that might be apparent to a person of ordinary skill in the art. The entities may be received or selected from a database. The type of database is not particularly limited and may include any type of data records including email data, travel data, phone call data, instant message data, event data, content data, purchase data or any other type of data that might be apparent to a person of ordinary skill in the art.

The relationship information between the entities may be extracted by extracting content features from each of the plurality of entities. The extraction of the content features is not particularly limited and may include applying object recognition techniques (e.g., object recognition, facial recognition, character recognition, etc.) to images or videos associated with the content item to identify the visual content. Additionally, audio recognition techniques (e.g., audio event detection, audio characteristic classification, speech recognition, etc.) may be used to detect the audio content associated with the content item. Additionally, subject matter recognition algorithms may be used to detect subjects or topics of textual content of the content item. The extracted content features may also include other types of features about the content item such as location of capture or authorship (e.g., GPS data, etc.) or any other content features that might be apparent to a person of ordinary skill in the art.

The relationship data may be extracted from the entities by matching content features associated with entities of one type with corresponding content features of entities of another, different type. For example, if content features associated with a content item or document entities indicates authorship by a certain person or persons, and content features associated with a creator or author entities indicates identity information by the same person or persons, a relationship may be stored in the relationship data. Other examples relationships between entities of different types may be apparent to a person of ordinary skill in the art, including user entity-communication entity, user entity-purchase entity, reader entity-communication entity, reader entity-content or document entity, etc.

Once relationship data is extracted from the plurality of entities, a two-mode network may be constructed at 910 by connecting entities of one type to entities of a second type. In some example implementations, entities of one type (e.g., a first type) may only be connected directly with entities of the second, different type and not to other entities of the first type. Similarly, entities of the second type may only be connected directly with entities of the first type and not to other entities of the second type.

In some example implementations, relationships between individual entities of one type may be connected to individual entities of the second type based on predefined data, associated with each entity. For example, a creator or author entity relationship with a created content or document entity. In other example implementations, multiple entities of one type may be joined together to form the relationship. For example, posts in a chat application within a certain time frame may be grouped as a conversation and users who published posts within the conversation may be connected to the entire conversation.

After constructing a two-mode network, which may represents a real-world system, a search content feature to be used as part of a search request may be received at 915. In some example implementations, the search content feature may be received from a user entry into a search field of a UI. For example, a user may type one or more keywords into a text entry field of a search engine.

In other example implementations, the search content feature may be received by extracting the searched content feature from a content item (e.g., a text document such as an email, text message, chat message, paper, etc.; a media document, such an photo, video clip, audio recording; or any other content item that might be apparent to a person of ordinary skill in the art). The searched content feature may be extracted from the content item by applying object recognition techniques (e.g., object recognition, facial recognition, character recognition, etc.) to images or videos associated with the content item to identify the visual content. Additionally, audio recognition techniques (e.g., audio event detection, audio characteristic classification, speech recognition, etc.) may be used to detect the audio content associated with the content item. Additionally, subject matter recognition algorithms may be used to detect subjects or topics of textual content of the content item. The extracted search content feature may also include other types of features about the content item such as location of capture or authorship (e.g., GPS data, etc.) or any other content features that might be apparent to a person of ordinary skill in the art.

After the searched content feature is received, data entities in the two-mode network associated with content features analogous to the searched content feature may be identified at 920. In some example implementations, the data entities identified at 920 may be associated with content features that are identical or substantially identical to the searched content feature. For example, if the searched content feature is a name such as “John Smith”, entities associated with content features such as “John Smith”, “John XXX”, or “XXX Smith” (with XXX representing wildcard characters) may be identified at 920.

In other example implementations, the data entities identified at 920 may also be associated with content features that are related to the received search content feature. For example, if the searched content feature is a genus (such as digital cameras), entities associated with content features representative of species (such as specific digital camera brands or models) may be identified at 920. Similarly, if the searched content feature is a species (such as a digital camera brand or model), entities associated with content features representative of the genus (such as digital cameras) may be identified at 920. Other relationships between the searched content feature and the content features used to identify entities may be apparent to a person of ordinary skill in the art.

After data entities are identified, subnetwork patterns containing the identified data entities may be detected at 925 using a variety of techniques. For example, brute force methods can be used to find subnetwork patterns such as cliques or faster (e.g., linear) approaches such as biclustering. Example implementations are not limited to any particular subnetwork pattern finding process and may use any technique to identify subnetwork patterns of interest that might be apparent to a person of ordinary skill in the art.

After the subnetwork patterns are identified, a visualization may be generated at 930. The generated visualization may be displayed on a computing device or apparatus such as a personal computer, a server, a mainframe, or any other computing device that might be apparent to a person of ordinary skill in the art. Example implementations of the visualization are discussed in greater detail below with respect to FIGS. 10-12. In some example implementations, the process 900 may end once the visualization is generated.

In other example implementations, a determination whether interaction instructions have been received from a user may optionally be made at 935. The user instructions may be received from a user input device such as a keyboard, pointing device (e.g., a mouse, trackball, touchpad), interactive display (e.g., a touch screen display), or any other user input device that might be apparent to a person of ordinary skill in the art. In some example implementations, the user instructions may be received through a user interface (UI), such as a toolbar or other control elements, integrated into the visualization generated at 930. In other example implementations, the user instructions may be received through a separate UI independent of the visualization generated at 930.

If user interaction instructions are received (YES at 935), the visualization may optionally be regenerated based on the received interaction instructions at 940. Regeneration of the visualization may include reordering portions of the visualization, repositioning portions of the visualization, removing portions from the visualization, adding portions to the visualization, or any other changes to the visualization that might be apparent to a person of ordinary skill in the art. Example implementations of a process of regenerating the visualization are discussed in greater detail above with respect to FIG. 8.

Conversely, if no user interactions are received (NO at 940), the process 900 may end.

In the process 900 illustrated in FIG. 9, a two-mode network is constructed at 910, the content feature to be searched is received at 915, and the subnetwork pattern is detected at 925. However, example implementations of the present application are not limited to the order of sub-processes illustrated in FIG. 9. For example, in other example implementations, a content feature to be searched may be received first, a two-mode network constructed based on items retrieved based on the received content feature, and then subnetwork patterns detected in the created network. Other arrangement of the sub-processes may be apparent to a person of ordinary skill in the art.

FIG. 10 illustrates a user interface (UI) 1000 usable as a visualization in accordance with another example implementation of the present application. The UI 1000 may be produced using the process 900 discussed above and may be displayed on a computing device or apparatus such as a personal computer, a server, a mainframe, or any other computing device that might be apparent to a person of ordinary skill in the art. The UI 1000 may represent a visualization for exploring search results of documents in a document corpus. For example, based on the search terms that a user inputs, the UI 1000 may present a list of authors & document entity sets ordered by relevancy.

The entity sets may have been constructed based on the two-mode network of authors and documents (such as publications, reports, etc.) and further extracted based on a user's search. The UI 1000 may allow a user to explore the results to discover further findings. For example, user may be able to identify relevant key documents/authors by browsing their connections because it broadens the scope, so that the user may refine his/her search more effectively. Other types of visualizations are discussed in greater detail above with respect to FIGS. 3-7 and below with respect to FIGS. 11 and 12.

In some example implementations, the UI 1000 may be a plurality of rows 1025, each row 1025 representing one of the detected subnetwork patterns. For ease of illustration only two rows 1025 have been labeled in FIG. 10. However, each of the rows illustrated in the UI 1000 of FIG. 10 may be representative of one of the detected subnetwork patterns even if a reference numeral is not provided. Within each row 1025 of the UI 1000, three regions 1030, 1035, 1040 may be provided. The left region 1030 may be associated with a first type of entity represented by node icons 1080. The right region 1035 may be associated with a second type of entity represented by node icons 1085. Depending on the type of entity represented by each node icon 1080, 1085, the node icon 1080, 1085 may be shown as an image, or a text summary. For example, a document corpus search result analysis implementation is illustrated in FIG. 10. As illustrated, entities of the first type in the left region 1030 are people (e.g., authors, content creators, etc.) and node icons 1080 are rendered as images of their profiles or characters associated with the people (e.g., author initials, content creator initials, etc.). Further, the entities of the second type in the right region 1035 are documents (e.g., papers, articles, photos, or other content items) and node icons 1085 are rendered with a thumbnail of the document or a portion of the document (e.g., a first page, a selected page, etc.). The node icons 1080, 1085 may also include additional features as discussed in greater detail above with respect to general node icon 500 of FIG. 5.

The left region 1030 is connected to right region 1035 by a central or linking region 1040. In the example implementation of FIG. 10, a simplified linking region is illustrated. However, in other example implementations, the linking region 1040 may provide information about the subnetwork pattern associated with each row 1025 as discussed in greater detail below. Additionally, though not illustrated in FIG. 10, other example implementations of the UI 1000 may also provide an information panel, an overview, and a toolbar, similar to the information panel 310, overview region 315, and toolbar 320 of the UI 300 illustrated in FIG. 3 and discussed above.

FIG. 11 illustrates another user interface (UI) 1100 usable as a visualization in accordance with another example implementation of the present application. The UI 1100 may be produced using the process 900 discussed above and may be displayed on a computing device or apparatus such as a personal computer, a server, a mainframe, or any other computing device that might be apparent to a person of ordinary skill in the art. Similar to UI 1000 of FIG. 10, the UI 1100 may represent a visualization for exploring search results of documents in a document corpus. For example, based on the search terms that a user inputs, the UI 1100 may present a list of authors and document entity sets ordered by relevancy.

The entity sets may have been constructed based on the two-mode network of authors and documents (such as publications, reports, etc.) and further extracted based on a user's search. The UI 1100 may allow a user to explore the results to discover further findings. For example, user may be able to identify relevant key documents/authors by browsing their connections because it broadens the scope, so that the user may refine his/her search more effectively. Other types of visualizations are discussed above with respect to FIGS. 3-7 and 10 and below with respect to FIGS. 12A and 12B.

In some example implementations, the UI 1100 may provide a plurality of rows 1125, each row 1125 representing one of the detected subnetwork patterns. For ease of illustration, only two rows 1125 have been labeled in FIG. 11. However, each of the rows illustrated in the UI 1100 of FIG. 11 may be representative of one of the detected subnetwork patterns even if a reference numeral is not provided. Within each row 1125 of the UI 1100, three regions 1130, 1135, 1140 may be provided. The left region 1130 may be associated with a first type of entity represented by node icons 1180. The right region 1135 may be associated with a second type of entity represented by node icons 1185. Depending on the type of entity represented by each node icon 1180, 1185, the node icon 1180, 1185 may be shown as an image, or a text summary. For example, a document corpus search result analysis implementation is illustrated in FIG. 11. As illustrated, entities of the first type in the left region 1130 are people (e.g., authors, content creators, etc.) and node icons 1180 are rendered as images of their profiles or characters associated with the people (e.g., author initials, content creator initials, etc.). Further, the entities of the second type in the right region 1135 are documents (e.g., papers, articles, photos, or other content items) and node icons 1185 are rendered with a thumbnail of the document or a portion of the document (e.g., a first page, a selected page, etc.). The node icons 1180, 1185 may also include additional features as discussed in greater detail above with respect to general node icon 500 of FIG. 5.

Additionally, in the UI 1100 of FIG. 11, a “pinning” operation, similar to the operation discussed in FIG. 7, has been performed on both an entity of the first type and an entity of the second type. Specifically, based on user input, one of entities of the first type (1180 a) and one of the entities of the second type (1185 b) has been selected or “pinned” for deeper exploration. After the entities 1180 a and 1185 b have been pinned, the UI 1100 has been arranged to form separate columns for entity 1180 a and 1185 b. This may allow clearer visualization to see which subnetwork patterns the entities 1180 a and 1185 b belongs to. When the entity 1180 a is pinned, the other unpinned entities 1180 may be ordered based on their relevancy to the pinned entity 1180 a in each row. Similarly, when the entity 1185 b is pinned, the other unpinned entities 1185 may be ordered based on their relevancy to the pinned entity 1185 b in each row. This may bring more relevant entities to the center (represented by broken rectangles 1110, 1115) region 1140 so that an analyst can more easily access them. After pinning entity 1180 a and entity 1185 b, the second horizontal bar 520 of the entities 1180, 1180 a, 1185, 1185 b may be dynamically shown under each node icon, representing the proportion of patterns to which that entity 1180, 1180 a, 1185, 1185 b belongs, among all the “selected” patterns. Again, selected patterns mean the patterns containing at least one of the pinned entities 1180 a, 1185 b. So the length of the second horizontal bar 520 indicates how many selected patterns contain a specific entity 1180, 1185. This may help an analyst to identify a next most relevant entity 1180, 1185 with respect to the pinned entities 1180 a, 1185.

The left region 1130 is connected to right region 1135 by a central or linking region 1140. The central or linking region 1140 may provide information about the subnetwork pattern associated with each row 1125. For example, a subnetwork pattern size indicator 1187 may be provided to identify size of the subnetwork pattern identified. The subnetwork pattern size indicator 1187 (highlighted with a broken oval) may indicate the number of entities of the first type in the right region 1130 and a number of entities of the second type in left region 1135. In the example implementation illustrated in FIG. 11, the subnetwork pattern size indicator 1187 value of “10×10” may indicate that subnetwork pattern associated with the illustrated row 1125 includes 10 entities of the first type in the left region 1130 and 10 entities of the second type in the right region 1135.

Additionally, in some implementations more entities of the first type 1180 a, 1180 or the second type 1185 b, 1185 may be associated with a subnetwork pattern than can be displayed in the left and right regions 1130, 1135 of the row 1125. In such implementations, the linking region 1140 may provide user interface (UI) controls 1189, 1191 (highlighted with broken ovals) associated with the left region 1130 and right regions 1135 respectively. Each UI control 1189, 1191 may allow scrolling or toggling of the left and right regions 1130, 1135 respectively, to display additional entities of the first type 1180 a, 1180 or the second type 1185 b, 1185 that cannot be displayed. Each UI controls 1189, 1191 may also have page indicators 1195, 1197. The page indicator 1195 may indicate the current page of entities 1180 a, 1180 being displayed in the left region 1130. Additionally, in some example implementations, the page indicator 1195 may also indicate the total number of pages of entities 1180 a, 1180 available. In the example implementation illustrated in FIG. 11, the page indicator 1195 value of “½” may indicate that currently page number “1” of a total of two available pages is displayed in the left region 1130.

Similarly, the page indicator 1197 may indicate the current page of entities 1185 b, 1185 being displayed in the right region 1135. Additionally, in some example implementations, the page indicator 1197 may also indicate the total number of pages of entities 1185 b, 1185 available. In the example implementation illustrated in FIG. 11, the page indicator 1197 value of “½” may indicate that currently page number “1” of a total of two available pages is displayed in the right region 1135.

Further, in some example implementations the central or linking region 1140 may also provide information 1193 about the subnetwork pattern associated with each row 1125. For example, as illustrated in FIG. 11, the information 1193 may include keywords associated with the content features linking the entities 1180 a,1180 in the left region 1130 to the entities 1185 b,1185 in the right region 1135. Additionally, though not illustrated in FIG. 11, other example implementations of the UI 1100 may also provide an information panel, an overview, and a toolbar, similar to the information panel 310, overview region 315, and toolbar 320 of the UI 300 illustrated in FIG. 3 and discussed above.

FIGS. 12A and 12B illustrate example implementations of a UI 1200 usable as a visualization in accordance with another example implementation of the present application. FIG. 12A illustrates the UI 1200 without any entities 1280, 1285 selected or pinned.

The UI 1200 may be produced using the process 900 discussed above and may be displayed on a computing device or apparatus such as a personal computer, a server, a mainframe, or any other computing device that might be apparent to a person of ordinary skill in the art. The UI 1200 may represent a visualization for exploring search results of purchases in an online commerce platform. For example, based on the search terms that a user inputs, the UI 1200 may present a list of customers and purchased item entity sets ordered by relevancy.

The entity sets may have been constructed based on the two-mode network of customers and purchased items (such as movies, books, TV shows, etc.) and further extracted based on a user's search. The UI 1200 may allow a user to explore the results to discover further findings. For example, user may be able to identify relevant key purchased items/purchasers by browsing their connections because it broadens the scope, so that the user may refine his/her search more effectively. Other types of visualizations are discussed above with respect to FIGS. 3-7, 10 and 11.

In some example implementations, the UI 1200 may provide a plurality of rows 1225, each row 1225 representing one of the detected subnetwork patterns. For ease of illustration, only two rows 1225 have been labeled in FIG. 12A. However, each of the rows illustrated in the UI 1200 of FIG. 12A may be representative of one of the detected subnetwork patterns even if a reference numeral is not provided. Within each row 1225 of the UI 1200, three regions 1230, 1235, 1240 may be provided. The left region 1230 may be associated with a first type of entity represented by node icons 1280. The right region 1235 may be associated with a second type of entity represented by node icons 1285. Depending on the type of entity represented by each node icon 1280, 1285, the node icon 1280, 1285 may be shown as an image, or a text summary. For example, an online commerce platform purchase search result analysis implementation is illustrated in FIGS. 12A and 12B. As illustrated, entities of the first type in the left region 1230 are people (e.g., purchasers, customer, etc.) and node icons 1280 are rendered as images of their profiles or characters associated with the people (e.g., purchasers, customer, etc.). Further, the entities of the second type in the right region 1235 are purchases (e.g., books, movies, TV shows, etc.) and node icons 1285 are rendered with a thumbnail representative of a purchase (e.g., a cover, a poster, representative character, etc.). The node icons 1280, 1285 may also include additional features as discussed in greater detail above with respect to general node icon 500 of FIG. 5.

Additionally in FIG. 12B, the UI 1200 illustrates a “pinning” operation, similar to the operation discussed in FIG. 7 performed on both an entity of the first type and an entity of the second type. Specifically, based on user input, one of entities of the first type (1280 a) and one of the entities of the second type (1285 b) has been selected or “pinned” for deeper exploration. After the entities 1280 a and 1285 b have been pinned, the UI 1200 has been arranged to form separate columns for entity 1280 a and 1285 b. This may allow clearer visualization to see which subnetwork patterns the entities 1280 a and 1285 b belongs to. When the entity 1280 a is pinned, the other unpinned entities 1280 may be ordered based on their relevancy to the pinned entity 1280 a in each row. Similarly, when the entity 1285 b is pinned, the other unpinned entities 1285 may be ordered based on their relevancy to the pinned entity 1285 b in each row. This may bring more relevant entities to the center (represented by broken rectangles 1210, 1215) region 1240 so that an analyst can more easily access them. After pinning entity 1280 a and entity 1285 b, the second horizontal bar 520 of the entities 1280, 1280 a, 1285, 1285 b may be dynamically shown under each node icon, representing the proportion of patterns to which that entity 1280, 1280 a, 1285, 1285 b belongs, among all the “selected” patterns. Again, selected patterns mean the patterns containing at least one of the pinned entities 1280 a, 1285 b. So the length of the second horizontal bar 520 indicates how many selected patterns contain a specific entity 1280, 1285. This may help an analyst to identify a next most relevant entity 1280, 1285 with respect to the pinned entities 1280 a, 1285.

The left region 1230 is connected to right region 1235 by a central or linking region 1240. The central or linking region 1240 may provide information about the subnetwork pattern associated with each row 1225. For example, a subnetwork pattern size indicator 1287 may be provided to identify size of the subnetwork pattern identified. The subnetwork pattern size indicator 1287 (highlighted with a broken oval) may indicate the number of entities of the first type in the right region 1230 and a number of entities of the second type in left region 1235. In the example implementation illustrated in FIGS. 12A and 12B, the subnetwork pattern size indicator 1287 value of “3×4” may indicate that subnetwork pattern associated with the illustrated row 1225 includes 3 entities of the first type in the left region 1230 and 4 entities of the second type in the right region 1235.

Additionally, in some implementations more entities of the first type 1280 a, 1280 or the second type 1285 b, 1285 may be associated with a subnetwork pattern than can be displayed in the left and right regions 1230, 1235 of the row 1225. In such implementations, the linking region 1240 may provide user interface (UI) controls 1289, 1291 (highlighted with broken ovals) associated with the left region 1230 and right regions 1235 respectively. Each UI control 1289, 1291 may allow scrolling or toggling of the left and right regions 1230, 1235 respectively, to display additional entities of the first type 1280 a, 1280 or the second type 1285 b, 1285 that cannot be displayed. Each UI controls 1289, 1291 may also have page indicators 1295, 1297. The page indicator 1295 may indicate the current page of entities 1280 a, 1280 being displayed in the left region 1230. Additionally, in some example implementations, the page indicator 1295 may also indicate the total number of pages of entities 1280 a, 1280 available. In the example implementation illustrated in FIGS. 12A and 12B, the page indicator 1295 value of “1/1” may indicate that currently page number “1” of a total of one available pages is displayed in the left region 1230.

Similarly, the page indicator 1297 may indicate the current page of entities 1285 b, 1285 being displayed in the right region 1235. Additionally, in some example implementations, the page indicator 1297 may also indicate the total number of pages of entities 1285 b, 1285 available. In the example implementation illustrated in FIGS. 12A and 12B, the page indicator 1297 value of “1/1” may indicate that currently page number “1” of a total of one available pages is displayed in the right region 1235.

Additionally, though not illustrated in FIGS. 12A and 12B, other example implementations of the UI 1200 may also provide an information panel, an overview, and a toolbar, similar to the information panel 310, overview region 315, and toolbar 320 of the UI 300 illustrated in FIG. 3 and discussed above.

Example Computing Environment

FIG. 13 illustrates an example computing environment 1300 with an example computer device 1305 suitable for use in some example implementations. Computing device 1305 in computing environment 1300 can include one or more processing units, cores, or processors 1310, memory 1315 (e.g., RAM, ROM, and/or the like), internal storage 1320 (e.g., magnetic, optical, solid state storage, and/or organic), and/or I/O interface 1325, any of which can be coupled on a communication mechanism or bus 1330 for communicating information or embedded in the computing device 1305.

Computing device 1305 can be communicatively coupled to input/user interface 1335 and output device/interface 1340. Either one or both of input/user interface 1335 and output device/interface 1340 can be a wired or wireless interface and can be detachable. Input/user interface 1335 may include any device, component, sensor, or interface, physical or virtual, which can be used to provide input (e.g., buttons, touch-screen interface, keyboard, a pointing/cursor control, microphone, camera, braille, motion sensor, optical reader, and/or the like). Output device/interface 1340 may include a display, television, monitor, printer, speaker, braille, or the like. In some example implementations, input/user interface 1335 and output device/interface 1340 can be embedded with, or physically coupled to, the computing device 1305. In other example implementations, other computing devices may function as, or provide the functions of, an input/user interface 1335 and output device/interface 1340 for a computing device 1305.

Examples of computing device 1305 may include, but are not limited to, highly mobile devices (e.g., smartphones, devices in vehicles and other machines, devices carried by humans and animals, and the like), mobile devices (e.g., tablets, notebooks, laptops, personal computers, portable televisions, radios, and the like), and devices not designed for mobility (e.g., desktop computers, server devices, other computers, information kiosks, televisions with one or more processors embedded therein and/or coupled thereto, radios, and the like).

Computing device 1305 can be communicatively coupled (e.g., via I/O interface 1325) to external storage 1345 and network 1350 for communicating with any number of networked components, devices, and systems, including one or more computing devices of the same or different configuration. Computing device 1305 or any connected computing device can be functioning as, providing services of, or referred to as a server, client, thin server, general machine, special-purpose machine, or another label.

I/O interface 1325 can include, but is not limited to, wired and/or wireless interfaces using any communication or I/O protocols or standards (e.g., Ethernet, 802.11x, Universal System Bus, WiMAX, modem, a cellular network protocol, and the like) for communicating information to and/or from at least all the connected components, devices, and network in computing environment 1300. Network 1350 can be any network or combination of networks (e.g., the Internet, local area network, wide area network, a telephonic network, a cellular network, satellite network, and the like).

Computing device 1305 can use and/or communicate using computer-usable or computer-readable media, including transitory media and non-transitory media. Transitory media includes transmission media (e.g., metal cables, fiber optics), signals, carrier waves, and the like. Non-transitory media included magnetic media (e.g., disks and tapes), optical media (e.g., CD ROM, digital video disks, Blu-ray disks), solid state media (e.g., RAM, ROM, flash memory, solid-state storage), and other non-volatile storage or memory.

Computing device 1305 can be used to implement techniques, methods, applications, processes, or computer-executable instructions in some example computing environments. Computer-executable instructions can be retrieved from transitory media, and stored on and retrieved from non-transitory media. The executable instructions can originate from one or more of any programming, scripting, and machine languages (e.g., C, C++, C#, Java, Visual Basic, Python, Perl, JavaScript, and others).

Processor(s) 1310 can execute under any operating system (OS) (not shown), in a native or virtual environment. One or more applications can be deployed that include logic unit 1355, application programming interface (API) unit 1360, input unit 1365, output unit 1370, pattern detector 1375, visualization generator 1380, entity identifier 1385, parameter adjustment engine 1390, and inter-unit communication mechanism 1395 for the different units to communicate with each other, with the OS, and with other applications (not shown). For example, pattern detector 1375, visualization generator 1380, entity identifier receiver 1385, and parameter adjustment engine 1390 may implement one or more processes shown in FIGS. 2, 8, and 9. The described units and elements can be varied in design, function, configuration, or implementation and are not limited to the descriptions provided.

In some example implementations, when information or an execution instruction is received by API unit 1360, it may be communicated to one or more other units (e.g., logic unit 1355, input unit 1365, pattern detector 1375, visualization generator 1380, entity identifier 1385, parameter adjustment engine 1390). For example, the pattern detector 1375 may receive relationship data via the input unit 1365, and provide the detected subnetwork patterns to the visualization generator 1380. Additionally, in some example implementations, the entity identifier 1385 may receive a content feature from the input unit 1365 and identify entities based on the received content feature. The identified entities may be provided to, and used by, the pattern detector 1375 to detect subnetwork patterns based on the received content features in some embodiments. Once the pattern detector 1375 has detected one or more subnetwork patterns, the detected subnetwork patterns may be provided to the visualization generator 1385 to generate the visualization. Further, the parameter adjustment engine 1390 may control the visualization generator 1385 and the pattern detector 1375 to update and modify the visualization.

In some instances, the logic unit 1355 may be configured to control the information flow among the units and direct the services provided by API unit 1360, input unit 1365, output unit 1370, pattern detector 1375, visualization generator 1380, entity identifier 1385, and parameter adjustment engine 1390 in some example implementations described above. For example, the flow of one or more processes or implementations may be controlled by logic unit 1355 alone or in conjunction with API unit 1360.

Although a few example implementations have been shown and described, these example implementations are provided to convey the subject matter described herein to people who are familiar with this field. It should be understood that the subject matter described herein may be implemented in various forms without being limited to the described example implementations. The subject matter described herein can be practiced without those specifically defined or described matters or with other or different elements or matters not described. It will be appreciated by those familiar with this field that changes may be made in these example implementations without departing from the subject matter described herein as defined in the appended claims and their equivalents. 

What is claimed is:
 1. A method of visualizing search results, the method comprising: receiving a content feature extracted from a media content item; detecting, within a network, a plurality of subnetwork patterns each representing a relationship satisfying a condition and associated with either an entity selected from a plurality entities of a first type or an entity selected from a plurality of entities of a second type, the entity being associated with the received content feature, wherein the network comprises a plurality of relationships, each relationship being associated with an entity selected from a plurality of entities of the first type and an entity selected from a plurality of entities of the second type; generating a visualization based on the detected subnetwork pattern, wherein the visualization comprises: a first region representative of the first type of entity; a second region representative of the second type of entity; and a linking region connecting the first region to the second region and providing information about the represented relationship, wherein the visualization comprises a plurality of rows, each row associated with one of the plurality of detected subnetwork patterns satisfying the condition; and displaying the generated visualization on a display device; receiving a first input signal identifying an entity of the first type; and updating the visualization based on the identified entity, wherein the updating the visualization comprises: detecting a first entity of the second type associated with a relationship associated with the identified entity of the first type; detecting a second entity of the first type associated with a relationship associated with the detected first entity of the second type; and repositioning at least one row associated with a subnetwork pattern representing a relationship associated with at least one of the detected first entity of the second type and the detected second entity of the first type.
 2. The method of claim 1, wherein the first type of entity is representative of creators of content in a content management system; and wherein the second type of entity is representative of items of content in a content management system.
 3. The method of claim 2, wherein the information provided in the linking region of the visualization comprises a content summary representative of one or more entities of the second type associated with the relationship represented by each of plurality of subnetwork patterns.
 4. The method of claim 3, further comprising receiving a second input signal identifying an entity of either the first type and the second type; and updating the visualization based on the identified entity, wherein the updating the visualization comprises repositioning at least one row associated with a subnetwork pattern representing a relationship associated with the identified entity.
 5. The method of claim 3, further comprising receiving a second input signal identifying an entity of either the first type and the second type; and updating the visualization based on the identified entity, wherein the updating the visualization comprises repositioning at least one row associated with a subnetwork pattern representing a relationship not associated with the identified entity.
 6. The method of claim 1, wherein the first type of entity is representative of customers of a retailer; and wherein the second type of entity is representative of items sold by the retailer.
 7. The method of claim 1, wherein the repositioning at least one row associated with a subnetwork pattern comprises: identifying at least one row associated with a subnetwork representing a relationship both not associated with the identified entity and associated with the detected second entity of the first type.
 8. The method of claim 1, wherein the received content feature is extracted based in part on at least one of an object recognition technique and an audio recognition technique.
 9. The method of claim 1, wherein the plurality of rows are a plurality of horizontal rows comprising a plurality of horizontally arranged nodes, each horizontal row including a node representative of the first type of entity, a node representative of the second type of entity, and a node of the linking region, wherein each horizontal row is associated with one of the plurality of detected subnetwork patterns satisfying the condition in order to visualize maximal subnetworks within the network, each node representative of an entity of the first type in the subnetwork having a connecting relationship with each node representative of an entity of the second type in the subnetwork.
 10. The method of claim 9, wherein the first region comprises a plurality of first nodes representative of the first type of entity and the second region comprises a plurality of second nodes representative of the second type of entity, wherein the node of linking region comprises controls to scroll or toggle through either the plurality of first nodes or the plurality of second nodes.
 11. The method of claim 9, wherein each node is associated with an entity of either the first type or second type, wherein at least one node comprises: a first bar indicating a first number of subnetwork patterns of the detected plurality of subnetwork patterns that the entity associated with the at least one node is part of; and a second bar representing a second number subnetwork patterns that both the entity associated with the at least one node is a part of and identified entity is part of.
 12. A non-transitory computer readable medium having stored therein a program for making a computer execute a method of visualizing search results, the method comprising: receiving a content feature extracted from a media content item; detecting, within a network, a plurality of subnetwork patterns each representing a relationship satisfying a condition and associated with either an entity selected from a plurality entities of a first type or an entity selected from a plurality of entities of a second type, the entity being associated with the received content feature, wherein the network comprises a plurality of relationships, each relationship being associated with an entity selected from a plurality of entities of the first type and an entity selected from a plurality of entities of the second type; generating a visualization based on the detected subnetwork pattern, wherein the visualization comprises: a first region representative of the first type of entity; a second region representative of the second type of entity; and a linking region connecting the first region to the second region and providing information about the represented relationship, wherein the visualization comprises a plurality of rows, each row associated with one of the plurality of detected subnetwork patterns satisfying the condition; and displaying the generated visualization on a display device; receiving a first input signal identifying an entity of the first type; and updating the visualization based on the identified entity, wherein the updating the visualization comprises: detecting a first entity of the second type associated with a relationship associated with the identified entity of the first type; detecting a second entity of the first type associated with a relationship associated with the detected first entity of the second type; and repositioning at least one row associated with a subnetwork pattern representing a relationship associated with at least one of the detected first entity of the second type and the detected second entity of the first type.
 13. The non-transitory computer readable medium of claim 12, wherein the first type of entity is representative of creators of content in a content management system; and wherein the second type of entity is representative of items of content in a content management system.
 14. The non-transitory computer readable medium of claim 13, wherein the information provided in the linking region of the visualization comprises a content summary representative of one or more entities of the second type associated with the relationship represented by each of plurality of subnetwork patterns.
 15. The non-transitory computer readable medium of claim 14, further comprising receiving a second input signal identifying an entity of either the first type and the second type; and updating the visualization based on the identified entity, wherein the updating the visualization comprises repositioning at least one row associated with a subnetwork pattern representing a relationship associated with the identified entity.
 16. The non-transitory computer readable medium of claim 14, further comprising receiving a second input signal identifying an entity of either the first type and the second type; and updating the visualization based on the identified entity, wherein the updating the visualization comprises repositioning at least one row associated with a subnetwork pattern representing a relationship not associated with the identified entity.
 17. The non-transitory computer readable medium of claim 12, wherein the first type of entity is representative of customers of a retailer; and wherein the second type of entity is representative of items sold by the retailer.
 18. The non-transitory computer readable medium of claim 12, wherein the repositioning at least one row associated with a subnetwork pattern comprises: identifying at least one row associated with a subnetwork representing a relationship both not associated with the identified entity and associated with the detected second entity of the first type.
 19. A computer apparatus configured to visualize search results, the computer apparatus comprising: a memory storing relationship data comprising a plurality of relationships, each relationship being associated with an entity selected from a plurality of entities of the first type and an entity selected from a plurality of entities of the second type; and a processor executing a process comprising: receiving a content feature extracted from a media content item; detecting, within a network, a plurality of subnetwork patterns each representing a relationship satisfying a condition and associated with either an entity selected from a plurality entities of a first type or an entity selected from a plurality of entities of a second type, the entity being associated with the received content feature, wherein the network comprises a plurality of relationships, each relationship being associated with an entity selected from a plurality of entities of the first type and an entity selected from a plurality of entities of the second type; and generating a visualization based on the detected subnetwork pattern, wherein the visualization comprises: a first region representative of the first type of entity; a second region representative of the second type of entity; and a linking region connecting the first region to the second region and providing information about the represented relationship, wherein the visualization comprises a plurality of rows, each row associated with one of the plurality of detected subnetwork patterns satisfying the condition; receiving a first input signal identifying an entity of the first type; and updating the visualization based on the identified entity, wherein the updating the visualization comprises: detecting a first entity of the second type associated with a relationship associated with the identified entity of the first type; detecting a second entity of the first type associated with a relationship associated with the detected first entity of the second type; and repositioning at least one row associated with a subnetwork pattern representing a relationship associated with at least one of the detected first entity of the second type and the detected second entity of the first type; and a display device configured to display the generated visualization. 